//package cn.antblog.IO;
//
//import com.sun.xml.internal.messaging.saaj.util.Base64;
//import net.coobird.thumbnailator.Thumbnails;
//import sun.misc.BASE64Decoder;
//import sun.misc.BASE64Encoder;
//
//import javax.imageio.ImageIO;
//import java.awt.image.BufferedImage;
//import java.io.*;
//
//public class ThumbnailsUtils {
//
//
//    public static void main(String[] args) {
//        String filePath = "D:\\ruoyi\\uploadPath\\upload\\2020\\12\\01\\1.jpg";
//        String imageToBase64Str = imageToBase64Str(filePath);
//        resizeImageTo30K(imageToBase64Str);
//    }
//
//    /**
//      * 图片转base64字符串
//      * @param imgFile 图片路径
//      * @return
//      */
//    public static String imageToBase64Str(String imgFile) {
//        InputStream inputStream = null;
//        byte[] data = null;
//        try {
//            inputStream = new FileInputStream(imgFile);
//            data = new byte[inputStream.available()];
//            inputStream.read(data);
//            inputStream.close();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        // 加密
//        BASE64Encoder encoder = new BASE64Encoder();
//        return encoder.encode(data);
//    }
//
//
//    public static String resizeImageTo30K(String base64Img) {
//        try {
//            BufferedImage src = base64String2BufferedImage(base64Img);
//            BufferedImage output = Thumbnails.of(src).size(240, 320).asBufferedImage();
//            String base64 = imageToBase64(output);
//            while (base64.length() - base64.length() / 8 * 2 > 30000) {
//                output = Thumbnails.of(output).scale(0.9f).asBufferedImage();
//                base64 = imageToBase64(output);
//            }
//            String s = imageToBase64(output);
//            System.out.println(s);
//            return s;
//        } catch (Exception e) {
//            return base64Img;
//        }
//    }
//
//
//    /**
//     *  对于base64转换成为BufferedImage：
//     * @param base64string
//     * @return
//     */
//    public static BufferedImage base64String2BufferedImage(String base64string) {
//        BufferedImage image = null;
//        try {
//            InputStream stream = BaseToInputStream(base64string);
//            image = ImageIO.read(stream);
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        return image;
//    }
//
//    /**
//     * base64转inputStream
//     * @param base64string
//     * @return
//     */
//    private static InputStream BaseToInputStream(String base64string) {
//        ByteArrayInputStream stream = null;
//        try {
//            BASE64Decoder decoder = new BASE64Decoder();
//            byte[] bytes1 = decoder.decodeBuffer(base64string);
//            stream = new ByteArrayInputStream(bytes1);
//        } catch (Exception e) {
//            // TODO: handle exception
//        }
//        return stream;
//    }
//
//
//    /**
//     * 对于BufferedImage转换成base64：
//     * @param bufferedImage
//     * @return
//     */
//    public static String imageToBase64(BufferedImage bufferedImage) {
//        Base64 encoder = new Base64();
//        ByteArrayOutputStream baos = new ByteArrayOutputStream();
//        try {
//            ImageIO.write(bufferedImage, "jpg", baos);
//        } catch (IOException e) {
//           e.printStackTrace();
//        }
//        return new String(encoder.encode((baos.toByteArray())));
//    }
//
//    /**
//     * 另外附上图片的Base64的大小计算方法
//     * @param base64Pic
//     * @param size
//     * @return
//     */
//    public static boolean isBase64ImageSizeLegal(String base64Pic, int size) {
//        int picSize = (base64Pic.length() - (base64Pic.length() / 8) * 2) / 1024;  //单位kb
//        return picSize <= size;
//    }
//}
